//package com.kanq.service.rabbitmq;
//
//import com.alibaba.fastjson.JSONObject;
//import com.rabbitmq.client.Channel;
//import com.rabbitmq.client.Connection;
//import com.rabbitmq.client.ConnectionFactory;
//
//import java.io.IOException;
//import java.util.ArrayList;
//import java.util.HashMap;
//import java.util.List;
//import java.util.Map;
//import java.util.concurrent.TimeoutException;
//
///**
// * @Author cheng jun
// * @Description:
// * @Date 2021/6/27 21:49
// */
//public class Provider {
//
//    public static void main(String[] args) throws IOException, TimeoutException {
//        // 创建连接mq的工厂对象
//        ConnectionFactory connectionFactory = new ConnectionFactory();
//        // 创建连接mq的主机
//        connectionFactory.setHost("127.0.0.1");
//        // 设置端口号
//        connectionFactory.setPort(5672);
//        // 设置连接哪个虚拟主机
//        connectionFactory.setVirtualHost("/ems");
//        // 设置访问虚拟主机的用户名和密码
//        connectionFactory.setUsername("ems");
//        connectionFactory.setPassword("ems");
//
//        // 获取连接对象(补全对象 ctrl+alt+v)
//        Connection connection = connectionFactory.newConnection();
//        // 获取连接通道
//        Channel channel = connection.createChannel();
//        // 通道绑定消息队列
//        // 参数1：队列名称
//        // 参数2：是否持久化 true是持久化 false是不持久化
//        // 参数3：是否独占队列 true是独占 false是不独占
//        // 参数4：是否在消费完后自动删除队列，true是自动删除 false是不自动删除
//        // 参数5：附加参数
//        //channel.queueDeclare("hello", false, false, false, null);
//
//        // 绑定交换机
//        // 参数1：交换机名字
//        // 参数2：交换机类型（fanout:广播模型,direct:路由模型）
//        channel.exchangeDeclare("topics", "topic");
//
//        // routingKey
//        String routingKey = "user.save.insert";
//
//        // 发布消息
//        //参数：交换机名称、交换机键（当直连时)，默认队列名称、消息额外设置、消息内容
//        List<Map<String, Object>> list = new ArrayList<>();
//        Map<String, Object> map = new HashMap<>();
//        map.put("aaa", routingKey);
//        map.put("bbb", 234);
//        Map<String, Object> map2 = new HashMap<>();
//        map2.put("aaa", 345);
//        map2.put("bbb", 456);
//        list.add(map);
//        list.add(map2);
//        channel.basicPublish("topics", routingKey, null, JSONObject.toJSONString(list).getBytes());
//
//        // 关闭资源
//        channel.close();
//        connection.close();
//    }
//}
